package cn.edu.xjtu.android.emoji_warfare_android.game;

import android.graphics.Canvas;
import cn.edu.xjtu.android.emoji_warfare_android.engine.entity.MovableEntity;

/**
 * Bullet<br>
 * 子弹
 * 
 * @author bill
 *
 */
public class Bullet extends MovableEntity {
    /**
     * 子弹攻击力
     */
    public int atk;
    /**
     * 水平单次移动距离
     */
    private float dx;
    /**
     * 竖直单次移动距离
     */
    private float dy;

    private int type;

    /**
     * 创建一个子弹
     * 
     * @param x
     *            子弹x坐标
     * @param y
     *            子弹y坐标
     * @param dx
     *            水平单次移动距离
     * @param dy
     *            竖直单次移动距离
     * @param atk
     *            子弹攻击力
     * @param type
     *            子弹类型
     */
    public Bullet(float x, float y, float dx, float dy, int atk, int type) {
        super(x, y, Config.Bullet.ouline);
        this.atk = atk;
        this.dx = dx;
        this.dy = dy;
        this.type = type;
    }

    /**
     * 创建一个子弹
     * 
     * @param x
     *            子弹x坐标
     * @param y
     *            子弹y坐标
     * @param atk
     *            子弹攻击力
     * @param degree
     *            角度(单位度)
     * @param speed
     *            子弹速度
     * @param type
     *            子弹类型
     */
    public Bullet(float x, float y, int atk, float degree, float speed, int type) {
        this(x, y, (float) (speed * Math.cos(degree * Math.PI / 180)),
                (float) (speed * Math.sin(degree * Math.PI / 180)), atk, type);
    }

    /**
     * 移动子弹
     * 
     * @return always false
     */
    @Override
    public boolean move() {
        basePoint.x += dx;
        basePoint.y += dy;
        return false;
    }

    /**
     * 绘制子弹
     * 
     * @param canvas
     *            画布
     * @return always false
     */
    @Override
    public boolean onDraw(Canvas canvas) {
        canvas.drawBitmap(Config.Bullet.image[type], -Config.Bullet.radius, -Config.Bullet.radius,
                Config.Common.bitmapPaint);
        return false;
    }
}
